home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / lang / Integer.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  6.8 KB  |  435 lines

  1. package java.lang;
  2.  
  3. public final class Integer extends Number implements Comparable<Integer> {
  4.    public static final int MIN_VALUE = -2147483648;
  5.    public static final int MAX_VALUE = 2147483647;
  6.    public static final Class<Integer> TYPE = Class.getPrimitiveClass("int");
  7.    static final char[] digits = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
  8.    static final char[] DigitTens = new char[]{'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '2', '2', '2', '2', '2', '2', '2', '2', '2', '2', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '4', '4', '4', '4', '4', '4', '4', '4', '4', '4', '5', '5', '5', '5', '5', '5', '5', '5', '5', '5', '6', '6', '6', '6', '6', '6', '6', '6', '6', '6', '7', '7', '7', '7', '7', '7', '7', '7', '7', '7', '8', '8', '8', '8', '8', '8', '8', '8', '8', '8', '9', '9', '9', '9', '9', '9', '9', '9', '9', '9'};
  9.    static final char[] DigitOnes = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
  10.    static final int[] sizeTable = new int[]{9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999, MAX_VALUE};
  11.    private final int value;
  12.    public static final int SIZE = 32;
  13.    private static final long serialVersionUID = 1360826667806852920L;
  14.  
  15.    public static String toString(int var0, int var1) {
  16.       if (var1 < 2 || var1 > 36) {
  17.          var1 = 10;
  18.       }
  19.  
  20.       if (var1 == 10) {
  21.          return toString(var0);
  22.       } else {
  23.          char[] var2 = new char[33];
  24.          boolean var3 = var0 < 0;
  25.          int var4 = 32;
  26.          if (!var3) {
  27.             var0 = -var0;
  28.          }
  29.  
  30.          while(var0 <= -var1) {
  31.             var2[var4--] = digits[-(var0 % var1)];
  32.             var0 /= var1;
  33.          }
  34.  
  35.          var2[var4] = digits[-var0];
  36.          if (var3) {
  37.             --var4;
  38.             var2[var4] = '-';
  39.          }
  40.  
  41.          return new String(var2, var4, 33 - var4);
  42.       }
  43.    }
  44.  
  45.    public static String toHexString(int var0) {
  46.       return toUnsignedString(var0, 4);
  47.    }
  48.  
  49.    public static String toOctalString(int var0) {
  50.       return toUnsignedString(var0, 3);
  51.    }
  52.  
  53.    public static String toBinaryString(int var0) {
  54.       return toUnsignedString(var0, 1);
  55.    }
  56.  
  57.    private static String toUnsignedString(int var0, int var1) {
  58.       char[] var2 = new char[32];
  59.       int var3 = 32;
  60.       int var4 = 1 << var1;
  61.       int var5 = var4 - 1;
  62.  
  63.       do {
  64.          --var3;
  65.          var2[var3] = digits[var0 & var5];
  66.          var0 >>>= var1;
  67.       } while(var0 != 0);
  68.  
  69.       return new String(var2, var3, 32 - var3);
  70.    }
  71.  
  72.    public static String toString(int var0) {
  73.       if (var0 == MIN_VALUE) {
  74.          return "-2147483648";
  75.       } else {
  76.          int var1 = var0 < 0 ? stringSize(-var0) + 1 : stringSize(var0);
  77.          char[] var2 = new char[var1];
  78.          getChars(var0, var1, var2);
  79.          return new String(0, var1, var2);
  80.       }
  81.    }
  82.  
  83.    static void getChars(int var0, int var1, char[] var2) {
  84.       int var5 = var1;
  85.       byte var6 = 0;
  86.       if (var0 < 0) {
  87.          var6 = 45;
  88.          var0 = -var0;
  89.       }
  90.  
  91.       while(var0 >= 65536) {
  92.          int var3 = var0 / 100;
  93.          int var4 = var0 - ((var3 << 6) + (var3 << 5) + (var3 << 2));
  94.          var0 = var3;
  95.          --var5;
  96.          var2[var5] = DigitOnes[var4];
  97.          --var5;
  98.          var2[var5] = DigitTens[var4];
  99.       }
  100.  
  101.       int var7;
  102.       do {
  103.          var7 = var0 * 'Ï≥ç' >>> 19;
  104.          int var8 = var0 - ((var7 << 3) + (var7 << 1));
  105.          --var5;
  106.          var2[var5] = digits[var8];
  107.          var0 = var7;
  108.       } while(var7 != 0);
  109.  
  110.       if (var6 != 0) {
  111.          --var5;
  112.          var2[var5] = (char)var6;
  113.       }
  114.  
  115.    }
  116.  
  117.    static int stringSize(int var0) {
  118.       int var1;
  119.       for(var1 = 0; var0 > sizeTable[var1]; ++var1) {
  120.       }
  121.  
  122.       return var1 + 1;
  123.    }
  124.  
  125.    public static int parseInt(String var0, int var1) throws NumberFormatException {
  126.       if (var0 == null) {
  127.          throw new NumberFormatException("null");
  128.       } else if (var1 < 2) {
  129.          throw new NumberFormatException("radix " + var1 + " less than Character.MIN_RADIX");
  130.       } else if (var1 > 36) {
  131.          throw new NumberFormatException("radix " + var1 + " greater than Character.MAX_RADIX");
  132.       } else {
  133.          int var2 = 0;
  134.          boolean var3 = false;
  135.          int var4 = 0;
  136.          int var5 = var0.length();
  137.          if (var5 > 0) {
  138.             int var6;
  139.             if (var0.charAt(0) == '-') {
  140.                var3 = true;
  141.                var6 = MIN_VALUE;
  142.                ++var4;
  143.             } else {
  144.                var6 = -2147483647;
  145.             }
  146.  
  147.             int var7 = var6 / var1;
  148.             if (var4 < var5) {
  149.                int var8 = Character.digit(var0.charAt(var4++), var1);
  150.                if (var8 < 0) {
  151.                   throw NumberFormatException.forInputString(var0);
  152.                }
  153.  
  154.                var2 = -var8;
  155.             }
  156.  
  157.             while(var4 < var5) {
  158.                int var10 = Character.digit(var0.charAt(var4++), var1);
  159.                if (var10 < 0) {
  160.                   throw NumberFormatException.forInputString(var0);
  161.                }
  162.  
  163.                if (var2 < var7) {
  164.                   throw NumberFormatException.forInputString(var0);
  165.                }
  166.  
  167.                var2 *= var1;
  168.                if (var2 < var6 + var10) {
  169.                   throw NumberFormatException.forInputString(var0);
  170.                }
  171.  
  172.                var2 -= var10;
  173.             }
  174.  
  175.             if (var3) {
  176.                if (var4 > 1) {
  177.                   return var2;
  178.                } else {
  179.                   throw NumberFormatException.forInputString(var0);
  180.                }
  181.             } else {
  182.                return -var2;
  183.             }
  184.          } else {
  185.             throw NumberFormatException.forInputString(var0);
  186.          }
  187.       }
  188.    }
  189.  
  190.    public static int parseInt(String var0) throws NumberFormatException {
  191.       return parseInt(var0, 10);
  192.    }
  193.  
  194.    public static Integer valueOf(String var0, int var1) throws NumberFormatException {
  195.       return new Integer(parseInt(var0, var1));
  196.    }
  197.  
  198.    public static Integer valueOf(String var0) throws NumberFormatException {
  199.       return new Integer(parseInt(var0, 10));
  200.    }
  201.  
  202.    public static Integer valueOf(int var0) {
  203.       return var0 >= -128 && var0 <= 127 ? java.lang.Integer.IntegerCache.cache[var0 + 128] : new Integer(var0);
  204.    }
  205.  
  206.    public Integer(int var1) {
  207.       this.value = var1;
  208.    }
  209.  
  210.    public Integer(String var1) throws NumberFormatException {
  211.       this.value = parseInt(var1, 10);
  212.    }
  213.  
  214.    public byte byteValue() {
  215.       return (byte)this.value;
  216.    }
  217.  
  218.    public short shortValue() {
  219.       return (short)this.value;
  220.    }
  221.  
  222.    public int intValue() {
  223.       return this.value;
  224.    }
  225.  
  226.    public long longValue() {
  227.       return (long)this.value;
  228.    }
  229.  
  230.    public float floatValue() {
  231.       return (float)this.value;
  232.    }
  233.  
  234.    public double doubleValue() {
  235.       return (double)this.value;
  236.    }
  237.  
  238.    public String toString() {
  239.       return String.valueOf(this.value);
  240.    }
  241.  
  242.    public int hashCode() {
  243.       return this.value;
  244.    }
  245.  
  246.    public boolean equals(Object var1) {
  247.       if (var1 instanceof Integer) {
  248.          return this.value == (Integer)var1;
  249.       } else {
  250.          return false;
  251.       }
  252.    }
  253.  
  254.    public static Integer getInteger(String var0) {
  255.       return getInteger(var0, (Integer)null);
  256.    }
  257.  
  258.    public static Integer getInteger(String var0, int var1) {
  259.       Integer var2 = getInteger(var0, (Integer)null);
  260.       return var2 == null ? new Integer(var1) : var2;
  261.    }
  262.  
  263.    public static Integer getInteger(String var0, Integer var1) {
  264.       String var2 = null;
  265.  
  266.       try {
  267.          var2 = System.getProperty(var0);
  268.       } catch (IllegalArgumentException var4) {
  269.       } catch (NullPointerException var5) {
  270.       }
  271.  
  272.       if (var2 != null) {
  273.          try {
  274.             return decode(var2);
  275.          } catch (NumberFormatException var6) {
  276.          }
  277.       }
  278.  
  279.       return var1;
  280.    }
  281.  
  282.    public static Integer decode(String var0) throws NumberFormatException {
  283.       byte var1 = 10;
  284.       int var2 = 0;
  285.       boolean var3 = false;
  286.       if (var0.startsWith("-")) {
  287.          var3 = true;
  288.          ++var2;
  289.       }
  290.  
  291.       if (!var0.startsWith("0x", var2) && !var0.startsWith("0X", var2)) {
  292.          if (var0.startsWith("#", var2)) {
  293.             ++var2;
  294.             var1 = 16;
  295.          } else if (var0.startsWith("0", var2) && var0.length() > 1 + var2) {
  296.             ++var2;
  297.             var1 = 8;
  298.          }
  299.       } else {
  300.          var2 += 2;
  301.          var1 = 16;
  302.       }
  303.  
  304.       if (var0.startsWith("-", var2)) {
  305.          throw new NumberFormatException("Negative sign in wrong position");
  306.       } else {
  307.          Integer var4;
  308.          try {
  309.             var4 = valueOf(var0.substring(var2), var1);
  310.             var4 = var3 ? new Integer(-var4) : var4;
  311.          } catch (NumberFormatException var7) {
  312.             String var6 = var3 ? new String("-" + var0.substring(var2)) : var0.substring(var2);
  313.             var4 = valueOf(var6, var1);
  314.          }
  315.  
  316.          return var4;
  317.       }
  318.    }
  319.  
  320.    public int compareTo(Integer var1) {
  321.       int var2 = this.value;
  322.       int var3 = var1.value;
  323.       return var2 < var3 ? -1 : (var2 == var3 ? 0 : 1);
  324.    }
  325.  
  326.    public static int highestOneBit(int var0) {
  327.       var0 |= var0 >> 1;
  328.       var0 |= var0 >> 2;
  329.       var0 |= var0 >> 4;
  330.       var0 |= var0 >> 8;
  331.       var0 |= var0 >> 16;
  332.       return var0 - (var0 >>> 1);
  333.    }
  334.  
  335.    public static int lowestOneBit(int var0) {
  336.       return var0 & -var0;
  337.    }
  338.  
  339.    public static int numberOfLeadingZeros(int var0) {
  340.       if (var0 == 0) {
  341.          return 32;
  342.       } else {
  343.          int var1 = 1;
  344.          if (var0 >>> 16 == 0) {
  345.             var1 += 16;
  346.             var0 <<= 16;
  347.          }
  348.  
  349.          if (var0 >>> 24 == 0) {
  350.             var1 += 8;
  351.             var0 <<= 8;
  352.          }
  353.  
  354.          if (var0 >>> 28 == 0) {
  355.             var1 += 4;
  356.             var0 <<= 4;
  357.          }
  358.  
  359.          if (var0 >>> 30 == 0) {
  360.             var1 += 2;
  361.             var0 <<= 2;
  362.          }
  363.  
  364.          var1 -= var0 >>> 31;
  365.          return var1;
  366.       }
  367.    }
  368.  
  369.    public static int numberOfTrailingZeros(int var0) {
  370.       if (var0 == 0) {
  371.          return 32;
  372.       } else {
  373.          int var2 = 31;
  374.          int var1 = var0 << 16;
  375.          if (var1 != 0) {
  376.             var2 -= 16;
  377.             var0 = var1;
  378.          }
  379.  
  380.          var1 = var0 << 8;
  381.          if (var1 != 0) {
  382.             var2 -= 8;
  383.             var0 = var1;
  384.          }
  385.  
  386.          var1 = var0 << 4;
  387.          if (var1 != 0) {
  388.             var2 -= 4;
  389.             var0 = var1;
  390.          }
  391.  
  392.          var1 = var0 << 2;
  393.          if (var1 != 0) {
  394.             var2 -= 2;
  395.             var0 = var1;
  396.          }
  397.  
  398.          return var2 - (var0 << 1 >>> 31);
  399.       }
  400.    }
  401.  
  402.    public static int bitCount(int var0) {
  403.       var0 -= var0 >>> 1 & 1431655765;
  404.       var0 = (var0 & 858993459) + (var0 >>> 2 & 858993459);
  405.       var0 = var0 + (var0 >>> 4) & 252645135;
  406.       var0 += var0 >>> 8;
  407.       var0 += var0 >>> 16;
  408.       return var0 & 63;
  409.    }
  410.  
  411.    public static int rotateLeft(int var0, int var1) {
  412.       return var0 << var1 | var0 >>> -var1;
  413.    }
  414.  
  415.    public static int rotateRight(int var0, int var1) {
  416.       return var0 >>> var1 | var0 << -var1;
  417.    }
  418.  
  419.    public static int reverse(int var0) {
  420.       var0 = (var0 & 1431655765) << 1 | var0 >>> 1 & 1431655765;
  421.       var0 = (var0 & 858993459) << 2 | var0 >>> 2 & 858993459;
  422.       var0 = (var0 & 252645135) << 4 | var0 >>> 4 & 252645135;
  423.       var0 = var0 << 24 | (var0 & '\uff00') << 8 | var0 >>> 8 & '\uff00' | var0 >>> 24;
  424.       return var0;
  425.    }
  426.  
  427.    public static int signum(int var0) {
  428.       return var0 >> 31 | -var0 >>> 31;
  429.    }
  430.  
  431.    public static int reverseBytes(int var0) {
  432.       return var0 >>> 24 | var0 >> 8 & '\uff00' | var0 << 8 & 16711680 | var0 << 24;
  433.    }
  434. }
  435.